package com.admin.exam.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.admin.base.Page;
import com.admin.base.Paging;
import com.admin.exam.entity.PersonInfo;
import com.admin.exam.vo.query.PersonInfoQuery;

/**
 * 操作相关
 */
@Repository
public interface PersonInfoMapper {
    /**
     * 根据主键删除
     *
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 新增
     *
     * @param record
     * @return
     */
    int insert(PersonInfo record);

    /**
     * 非空新增
     *
     * @param record
     * @return
     */
    int insertSelective(PersonInfo record);

    /**
     * 主键查询
     *
     * @param id
     * @return
     */
    PersonInfo getByPrimaryKey(Integer id);

    PersonInfo getPersonInfoByPhone(String phone);

    /**
     * 非空更新
     *
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(PersonInfo record);

    int updateByPhone(PersonInfo record);

    /**
     * 更新
     *
     * @param record
     * @return
     */
    int updateByPrimaryKey(PersonInfo record);

    /**
     * 条件查询
     *
     * @param query
     * @return
     */
    List<PersonInfo> listByConditions(PersonInfoQuery query);
    List<PersonInfo> getPersonalRank();
    List<PersonInfo> getHospitalRank();

    /**
     * 查询总数
     *
     * @param query
     * @return
     */
    Long pageCount(PersonInfoQuery query);

    /**
     * 分页查询
     *
     * @param query
     * @return
     */
    @Paging
    Page<PersonInfo> pagingByConditions(PersonInfoQuery query);
}
